//! 基础字符集
//! 
//! 包含常用的状态指示、形状、方向等基础字符

use std::collections::HashMap;
use crate::CharacterSet;

/// 获取基础字符集
pub fn get_basic_characters() -> HashMap<String, CharacterSet> {
    let mut characters = HashMap::new();

    // 成功/对勾相关
    characters.insert("success".to_string(), 
        CharacterSet::new()
            .simple("✓")
            .icon("✅")
            .bold("✓")
            .color("🟢")
    );

    characters.insert("check".to_string(),
        CharacterSet::new()
            .simple("✓")
            .icon("☑️")
            .bold("✓")
    );

    characters.insert("done".to_string(),
        CharacterSet::new()
            .simple("✓")
            .icon("✅")
            .bold("✓")
    );

    // 错误/叉号相关
    characters.insert("error".to_string(),
        CharacterSet::new()
            .simple("✗")
            .icon("❌")
            .bold("✗")
            .color("🔴")
    );

    characters.insert("cross".to_string(),
        CharacterSet::new()
            .simple("✗")
            .icon("❌")
            .bold("✗")
    );

    characters.insert("fail".to_string(),
        CharacterSet::new()
            .simple("✗")
            .icon("❌")
            .bold("✗")
            .color("🔴")
    );

    // 警告相关
    characters.insert("warning".to_string(),
        CharacterSet::new()
            .simple("⚠")
            .icon("⚠️")
            .bold("⚠")
            .color("🟡")
    );

    characters.insert("caution".to_string(),
        CharacterSet::new()
            .simple("⚠")
            .icon("⚠️")
            .bold("⚠")
            .color("🟡")
    );

    // 信息相关
    characters.insert("info".to_string(),
        CharacterSet::new()
            .simple("ℹ")
            .icon("ℹ️")
            .bold("ℹ")
            .color("🔵")
    );

    characters.insert("information".to_string(),
        CharacterSet::new()
            .simple("ℹ")
            .icon("ℹ️")
            .bold("ℹ")
            .color("🔵")
    );

    // 箭头相关
    characters.insert("arrow_right".to_string(),
        CharacterSet::new()
            .simple("→")
            .icon("➡️")
            .bold("→")
    );

    characters.insert("arrow_left".to_string(),
        CharacterSet::new()
            .simple("←")
            .icon("⬅️")
            .bold("←")
    );

    characters.insert("arrow_up".to_string(),
        CharacterSet::new()
            .simple("↑")
            .icon("⬆️")
            .bold("↑")
    );

    characters.insert("arrow_down".to_string(),
        CharacterSet::new()
            .simple("↓")
            .icon("⬇️")
            .bold("↓")
    );

    characters.insert("arrow_up_right".to_string(),
        CharacterSet::new()
            .simple("↗")
            .icon("↗️")
            .bold("↗")
    );

    characters.insert("arrow_up_left".to_string(),
        CharacterSet::new()
            .simple("↖")
            .icon("↖️")
            .bold("↖")
    );

    characters.insert("arrow_down_right".to_string(),
        CharacterSet::new()
            .simple("↘")
            .icon("↘️")
            .bold("↘")
    );

    characters.insert("arrow_down_left".to_string(),
        CharacterSet::new()
            .simple("↙")
            .icon("↙️")
            .bold("↙")
    );

    // 星号相关
    characters.insert("star".to_string(),
        CharacterSet::new()
            .simple("★")
            .icon("⭐")
            .bold("★")
            .color("🌟")
    );

    characters.insert("star_empty".to_string(),
        CharacterSet::new()
            .simple("☆")
            .icon("☆")
            .bold("☆")
    );

    characters.insert("sparkle".to_string(),
        CharacterSet::new()
            .simple("✨")
            .icon("✨")
            .bold("✨")
    );

    // 心形相关
    characters.insert("heart".to_string(),
        CharacterSet::new()
            .simple("♥")
            .icon("❤️")
            .bold("♥")
            .color("💖")
    );

    characters.insert("heart_empty".to_string(),
        CharacterSet::new()
            .simple("♡")
            .icon("🤍")
            .bold("♡")
    );

    characters.insert("heart_broken".to_string(),
        CharacterSet::new()
            .simple("💔")
            .icon("💔")
            .bold("💔")
    );

    // 圆圈相关
    characters.insert("circle_filled".to_string(),
        CharacterSet::new()
            .simple("●")
            .icon("⚫")
            .bold("●")
    );

    characters.insert("circle_empty".to_string(),
        CharacterSet::new()
            .simple("○")
            .icon("⚪")
            .bold("○")
    );

    characters.insert("dot".to_string(),
        CharacterSet::new()
            .simple("•")
            .icon("•")
            .bold("•")
    );

    // 方块相关
    characters.insert("square_filled".to_string(),
        CharacterSet::new()
            .simple("■")
            .icon("⬛")
            .bold("■")
    );

    characters.insert("square_empty".to_string(),
        CharacterSet::new()
            .simple("□")
            .icon("⬜")
            .bold("□")
    );

    // 三角形相关
    characters.insert("triangle_up".to_string(),
        CharacterSet::new()
            .simple("▲")
            .icon("🔺")
            .bold("▲")
    );

    characters.insert("triangle_down".to_string(),
        CharacterSet::new()
            .simple("▼")
            .icon("🔻")
            .bold("▼")
    );

    characters.insert("triangle_right".to_string(),
        CharacterSet::new()
            .simple("▶")
            .icon("▶️")
            .bold("▶")
    );

    characters.insert("triangle_left".to_string(),
        CharacterSet::new()
            .simple("◀")
            .icon("◀️")
            .bold("◀")
    );

    // 播放控制相关
    characters.insert("play".to_string(),
        CharacterSet::new()
            .simple("▶")
            .icon("▶️")
            .bold("▶")
    );

    characters.insert("pause".to_string(),
        CharacterSet::new()
            .simple("⏸")
            .icon("⏸️")
            .bold("⏸")
    );

    characters.insert("stop".to_string(),
        CharacterSet::new()
            .simple("⏹")
            .icon("⏹️")
            .bold("⏹")
    );

    characters.insert("rewind".to_string(),
        CharacterSet::new()
            .simple("⏪")
            .icon("⏪")
            .bold("⏪")
    );

    characters.insert("fast_forward".to_string(),
        CharacterSet::new()
            .simple("⏩")
            .icon("⏩")
            .bold("⏩")
    );

    // 时钟相关
    characters.insert("clock".to_string(),
        CharacterSet::new()
            .simple("🕐")
            .icon("🕐")
            .bold("🕐")
    );

    characters.insert("time".to_string(),
        CharacterSet::new()
            .simple("⏰")
            .icon("⏰")
            .bold("⏰")
    );

    // 锁相关
    characters.insert("lock".to_string(),
        CharacterSet::new()
            .simple("🔒")
            .icon("🔒")
            .bold("🔒")
    );

    characters.insert("unlock".to_string(),
        CharacterSet::new()
            .simple("🔓")
            .icon("🔓")
            .bold("🔓")
    );

    // 设置相关
    characters.insert("settings".to_string(),
        CharacterSet::new()
            .simple("⚙")
            .icon("⚙️")
            .bold("⚙")
    );

    characters.insert("gear".to_string(),
        CharacterSet::new()
            .simple("⚙")
            .icon("⚙️")
            .bold("⚙")
    );

    // 搜索相关
    characters.insert("search".to_string(),
        CharacterSet::new()
            .simple("🔍")
            .icon("🔍")
            .bold("🔍")
    );

    characters.insert("find".to_string(),
        CharacterSet::new()
            .simple("🔍")
            .icon("🔍")
            .bold("🔍")
    );

    // 用户相关
    characters.insert("user".to_string(),
        CharacterSet::new()
            .simple("👤")
            .icon("👤")
            .bold("👤")
    );

    characters.insert("users".to_string(),
        CharacterSet::new()
            .simple("👥")
            .icon("👥")
            .bold("👥")
    );

    characters.insert("person".to_string(),
        CharacterSet::new()
            .simple("👤")
            .icon("👤")
            .bold("👤")
    );

    // 文件夹相关
    characters.insert("folder".to_string(),
        CharacterSet::new()
            .simple("📁")
            .icon("📁")
            .bold("📁")
    );

    characters.insert("file".to_string(),
        CharacterSet::new()
            .simple("📄")
            .icon("📄")
            .bold("📄")
    );

    characters.insert("document".to_string(),
        CharacterSet::new()
            .simple("📄")
            .icon("📄")
            .bold("📄")
    );

    // 下载/上传相关
    characters.insert("download".to_string(),
        CharacterSet::new()
            .simple("⬇")
            .icon("⬇️")
            .bold("⬇")
    );

    characters.insert("upload".to_string(),
        CharacterSet::new()
            .simple("⬆")
            .icon("⬆️")
            .bold("⬆")
    );

    // 网络相关
    characters.insert("wifi".to_string(),
        CharacterSet::new()
            .simple("📶")
            .icon("📶")
            .bold("📶")
    );

    characters.insert("signal".to_string(),
        CharacterSet::new()
            .simple("📶")
            .icon("📶")
            .bold("📶")
    );

    // 电池相关
    characters.insert("battery".to_string(),
        CharacterSet::new()
            .simple("🔋")
            .icon("🔋")
            .bold("🔋")
    );

    characters.insert("power".to_string(),
        CharacterSet::new()
            .simple("🔋")
            .icon("🔋")
            .bold("🔋")
    );

    // 火焰/热门相关
    characters.insert("fire".to_string(),
        CharacterSet::new()
            .simple("🔥")
            .icon("🔥")
            .bold("🔥")
    );

    characters.insert("hot".to_string(),
        CharacterSet::new()
            .simple("🔥")
            .icon("🔥")
            .bold("🔥")
    );

    // 钻石/宝石相关
    characters.insert("diamond".to_string(),
        CharacterSet::new()
            .simple("💎")
            .icon("💎")
            .bold("💎")
    );

    characters.insert("gem".to_string(),
        CharacterSet::new()
            .simple("💎")
            .icon("💎")
            .bold("💎")
    );

    // 礼物相关
    characters.insert("gift".to_string(),
        CharacterSet::new()
            .simple("🎁")
            .icon("🎁")
            .bold("🎁")
    );

    characters.insert("present".to_string(),
        CharacterSet::new()
            .simple("🎁")
            .icon("🎁")
            .bold("🎁")
    );

    // 派对/庆祝相关
    characters.insert("party".to_string(),
        CharacterSet::new()
            .simple("🎉")
            .icon("🎉")
            .bold("🎉")
    );

    characters.insert("celebration".to_string(),
        CharacterSet::new()
            .simple("🎉")
            .icon("🎉")
            .bold("🎉")
    );

    // 生日相关
    characters.insert("birthday".to_string(),
        CharacterSet::new()
            .simple("🎂")
            .icon("🎂")
            .bold("🎂")
    );

    // 彩虹相关
    characters.insert("rainbow".to_string(),
        CharacterSet::new()
            .simple("🌈")
            .icon("🌈")
            .bold("🌈")
    );

    // 太阳相关
    characters.insert("sun".to_string(),
        CharacterSet::new()
            .simple("☀")
            .icon("☀️")
            .bold("☀")
    );

    characters.insert("sunny".to_string(),
        CharacterSet::new()
            .simple("☀")
            .icon("☀️")
            .bold("☀")
    );

    // 月亮相关
    characters.insert("moon".to_string(),
        CharacterSet::new()
            .simple("☽")
            .icon("🌙")
            .bold("☽")
    );

    characters.insert("night".to_string(),
        CharacterSet::new()
            .simple("🌙")
            .icon("🌙")
            .bold("🌙")
    );

    // 云朵相关
    characters.insert("cloud".to_string(),
        CharacterSet::new()
            .simple("☁")
            .icon("☁️")
            .bold("☁")
    );

    characters.insert("cloudy".to_string(),
        CharacterSet::new()
            .simple("☁")
            .icon("☁️")
            .bold("☁")
    );

    // 雨滴相关
    characters.insert("rain".to_string(),
        CharacterSet::new()
            .simple("🌧")
            .icon("🌧️")
            .bold("🌧")
    );

    characters.insert("rainy".to_string(),
        CharacterSet::new()
            .simple("🌧")
            .icon("🌧️")
            .bold("🌧")
    );

    // 雪花相关
    characters.insert("snow".to_string(),
        CharacterSet::new()
            .simple("❄")
            .icon("❄️")
            .bold("❄")
    );

    characters.insert("snowy".to_string(),
        CharacterSet::new()
            .simple("❄")
            .icon("❄️")
            .bold("❄")
    );

    // 闪电相关
    characters.insert("lightning".to_string(),
        CharacterSet::new()
            .simple("⚡")
            .icon("⚡")
            .bold("⚡")
    );

    characters.insert("thunder".to_string(),
        CharacterSet::new()
            .simple("⚡")
            .icon("⚡")
            .bold("⚡")
    );

    // 邮件相关
    characters.insert("mail".to_string(),
        CharacterSet::new()
            .simple("✉")
            .icon("✉️")
            .bold("✉")
    );

    characters.insert("email".to_string(),
        CharacterSet::new()
            .simple("✉")
            .icon("✉️")
            .bold("✉")
    );

    // 电话相关
    characters.insert("phone".to_string(),
        CharacterSet::new()
            .simple("☎")
            .icon("📞")
            .bold("☎")
    );

    characters.insert("telephone".to_string(),
        CharacterSet::new()
            .simple("☎")
            .icon("📞")
            .bold("☎")
    );

    characters
}
